package com.test.design.pattern.bulider.demo1;

/**
 * @ClasName Builder
 * @Descripution TODO
 * @Author leikw
 * @Date 2021/11/6 16:56
 * @Version V1.0
 */
public abstract class Builder {

    //声明Bike类型的变量，并进行赋值
    protected Bike bike = new Bike();

    public abstract void buildFrame();

    public abstract void buildSeat();

    //构建自行车的方法
    public abstract Bike createBike();
}
// 抽象 builder 类
//public abstract class Builder {
//    protected Bike mBike = new Bike();
//    public abstract void buildFrame();
//    public abstract void buildSeat();
//    public abstract Bike createBike();
//    public Bike construct() {
//        this.buildFrame();
//        this.BuildSeat();
//        return this.createBike();
//    }
//}
//这样做确实简化了系统结构，但同时也加重了抽象建造者类的职责，也不是太符合单一职责原则，如果
//construct() 过于复杂，建议还是封装到 Director 中。
